package cn.ztuo.bitrade.job;

import cn.ztuo.bitrade.service.ContractCoinService;
import cn.ztuo.bitrade.service.ContractOrderDetailService;
import cn.ztuo.bitrade.service.ContractOrderService;
import cn.ztuo.bitrade.service.ContractPositionService;
import cn.ztuo.bitrade.util.ContractUtils;
import cn.ztuo.bitrade.util.RedisUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Slf4j
@Component
public class Contractjob {

    @Autowired
    private RedisUtil redisUtil;
    @Autowired
    private ContractCoinService contractCoinService;
    @Autowired
    private ContractOrderService contractOrderService;
    @Autowired
    private ContractOrderDetailService contractOrderDetailService;
    @Autowired
    private ContractPositionService positionService;
    @Autowired
    private KafkaTemplate<String,String> kafkaTemplate;



    /**
     * 所有合约利率（1000 可用）
     * 每1分钟计算一次合约利率
     */
//    @Scheduled(fixedRate = 60*1000)
//    public void contractInterestRate() {
//        ContractUtils.setInterestRate();
//    }

    /**
     * 计算资金费用基差率(1000 可用但是资金费率好像不正确)
     * 资金费用基差率 = 资金费率* (至下一个缴付资金费用的时间/资金费用的时间间隔)
     */
//    @Scheduled(fixedRate = 1000)
//    public void setbasisrate() {
//        ContractUtils.setbasisrate();
//    }

    /**
     * 标记价格（1000 可用）
     * 标记价格= 指数价格 * (1 + 资金费用基差率)
     */
//    @Scheduled(fixedRate = 1000)
//    public void setMarkedprice() {
//        ContractUtils.setMarketprice();
//    }
    /**
     * 标记价格（1000 可用）
     * 标记价格= 指数价格 * (1 + 资金费用基差率)
     */
    @Scheduled(fixedRate = 1000)
    public void setIndexprice() {
        ContractUtils.setIndexprice();
    }


    /**
     * 每分钟溢价指数（1000*60  有数据但是没有成交量还需要在测试）
//     */
//    @Scheduled(fixedRate = 60*1000)
//    public void setpremiumIndex(){
//        ContractUtils.setPremiumIndex();
//    }

    /**
     * 计算资金费率(0 0 4,12,20 * * ? 未测试)
     * 每天的上午4 中午12点 晚上8点
     */
//    @Scheduled(cron = "0 0 4,12,20 * * ?")
//    @Scheduled(fixedRate = 1000)
//    public void setCapitalRate() {
//        ContractUtils.setCapitalRate();
//    }

}
